home *** CD-ROM | disk | FTP | other *** search
- ;------------------------------------------------------------------------------
- ; .ss.
- ; `²²'
- ; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
- ; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
- ; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
- ; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
- ; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
- ; .sS²°$$$²²°"' d²°'
- ; .$$² .$$'
- ; $$$.,d$$'
- ; `²S$$S²'
- ;------------------------------------------------------------------------------
- ; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
- ;------------------------------------------------------------------------------
- ; PPE 1.OO (plain) - Analysis ON - Postprocessing ON
- ;------------------------------------------------------------------------------
-
- Boolean BOOLEAN001
- Integer INTEGER001
- Integer INTEGER002
- Integer INTEGER003
- Integer INTEGER004
- Integer INTEGER005
- String STRING001
- String STRING002
- String STRING003
- String STRING004
- String STRING005
- String STRING006
- String STRING007
- String STRING008
- String STRING009
- String STRING010
- String STRING011
- Time TIME001
- Time TIME002
- Time TIME003
-
- ;------------------------------------------------------------------------------
-
- TIME001 = Time()
- TIME002 = ReadLine(PCBDat(), 189)
- TIME003 = ReadLine(PCBDat(), 190)
- INTEGER005 = S2I(ReadLine(PPEPath() + "ocommand.cnf", 4), 10)
- STRING011 = Lower(ReadLine(PPEPath() + "ocommand.cnf", 5))
- If (Left(STRING011, 8) == "override") Then
- If (Mid(STRING011, 9, 2) == "on") Then
- BOOLEAN001 = 0
- Else
- BOOLEAN001 = 1
- Endif
- Else
- STRING004 = ReadLine(PPEPath() + "ocommand.cnf", 5)
- If (Right(STRING004, 1) == "\") Then
- STRING004 = STRING004 + "pcboard.sys"
- Else
- STRING004 = STRING004 + "\pcboard.sys"
- Endif
- If (Mid(ReadLine(STRING004, 1), 6, 1) == "0") Then
- BOOLEAN001 = 1
- Else
- BOOLEAN001 = 0
- Endif
- Endif
- STRING006 = Chr(7)
- STRING007 = Chr(13)
- STRING008 = Chr(27) + "["
- STRING009 = STRING008 + "0;0H"
- STRING010 = STRING008 + "K"
- Newline
- InputStr "@X07" + ReadLine(PPEPath() + "ocommand.cnf", 1), STRING005, 0, 60, Mask_Ascii(), 2 + 4096
- If (STRING005 == "") End
- Log "■ SCHAT: " + STRING005, 0
- Newline
- If (((TIME001 >= TIME002) && (TIME001 <= TIME003)) || (CurSec() >= SysopSec())) Then
- If ((CurSec() >= SysopSec()) || !PageStat()) Then
- PageOn
- Newline
- DispStr ReadLine(PPEPath() + "ocommand.cnf", 2)
- STRING001 = ReadLine(PPEPath() + "ocommand.cnf", 3)
- Gosub LABEL004
- For INTEGER003 = 1 To INTEGER005
- Print "."
- MPrint STRING006
- If (BOOLEAN001) Then
- Delay 14
- Goto LABEL001
- Endif
- For INTEGER004 = 110 To 1760 Step 10
- Sound INTEGER004
- Next
- Sound 0
- Delay 9
- :LABEL001
- STRING003 = KInkey()
- If (STRING003 == " ") Then
- STRING001 = ""
- Gosub LABEL004
- Call PPEPath() + "schat.ppe"
- PageOff
- End
- Goto LABEL002
- Endif
- If (STRING003 == Chr(13)) Then
- BOOLEAN001 = 1
- Endif
- :LABEL002
- If (Abort()) INTEGER003 = INTEGER005 + 1
- If (!PageStat()) End
- Next
- STRING001 = ""
- Gosub LABEL004
- If (Abort()) Then
- ResetDisp
- Newline
- End
- Goto LABEL003
- Endif
- Newline
- Endif
- Endif
- :LABEL003
- PageOn
- DispText 128, 128 + 64
- STRING002 = NoChar()
- PromptStr 571, STRING002, 1, "", 16384 + 64 + 256 + 2 + 8
- If (STRING002 == YesChar()) KbdStuff "C" + STRING007 + "Y" + STRING007
- End
- :LABEL004
- INTEGER001 = GetX()
- INTEGER002 = GetY()
- SPrint STRING009, STRING010
- SPrint STRING001
- SPrint STRING008 + String(INTEGER002) + ";" + String(INTEGER001) + "H"
- Return
-
- ;------------------------------------------------------------------------------
- ;
- ; Usage report (before postprocessing)
- ;
- ; ■ Statements used :
- ;
- ; 5 End
- ; 21 Goto
- ; 30 Let
- ; 1 Print
- ; 16 If
- ; 1 ResetDisp
- ; 1 Log
- ; 1 InputStr
- ; 3 Gosub
- ; 1 Return
- ; 1 PromptStr
- ; 2 Delay
- ; 5 Newline
- ; 1 DispText
- ; 1 KbdStuff
- ; 1 Call
- ; 1 DispStr
- ; 2 Sound
- ; 3 SPrint
- ; 1 MPrint
- ; 2 PageOn
- ; 1 PageOff
- ;
- ;
- ; ■ Functions used :
- ;
- ; 30 +
- ; 8 ==
- ; 2 <
- ; 3 <=
- ; 7 >=
- ; 14 !
- ; 5 &&
- ; 4 ||
- ; 1 Lower()
- ; 2 Mid()
- ; 1 Left()
- ; 1 Right()
- ; 4 Chr()
- ; 2 Abort()
- ; 1 Time()
- ; 1 NoChar()
- ; 1 YesChar()
- ; 2 String()
- ; 1 Mask_Ascii()
- ; 2 PCBDat()
- ; 7 PPEPath()
- ; 9 ReadLine()
- ; 2 SysopSec()
- ; 2 CurSec()
- ; 1 S2I()
- ; 1 GetX()
- ; 1 GetY()
- ; 1 KInkey()
- ; 2 PageStat()
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Analysis flags : MCds
- ;
- ; M - Send text to modem only ■ 4
- ; Some informations are sent only to the modem, not to the local
- ; screen, this is a well known way to make stealth backdoors, Check!
- ; ■ Search for : SENDMODEM, MPRINT, MPRINTLN
- ;
- ; C - Call child PPE ■ 3
- ; This is usually normal, but may be a tricky way to launch some
- ; sysop-only commands.
- ; ■ Search for : CALL
- ;
- ; d - Access PCBOARD.DAT ■ 2
- ; Program gets the full pathname to PCBOARD.DAT, this may be usefull
- ; for many PPE so they can find various informations on the system
- ; (system paths, max number of lines in messages, ...) but it may also
- ; be a way to gather vital informations.
- ; ■ Search for : PCBDAT()
- ;
- ; s - Sysop level access ■ 5
- ; Program is reading the sysop access level, this may be normal
- ; but still it is very suspect. It is the best way to give a user
- ; all priviledges. Check!
- ; ■ Search for : SYSOPSEC()
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Postprocessing report
- ;
- ; 2 For/Next
- ; 0 While/EndWhile
- ; 10 If/Then or If/Then/Else
- ; 0 Select Case
- ;
- ;------------------------------------------------------------------------------
- ; AEGiS Corp - Break the routines, code against the machines!
- ;------------------------------------------------------------------------------
-